#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
   File Name：      config.py
   Remark :         
-------------------------------------------------
config.py 是一个用于存储项目配置的文件，通常用于管理项目中可能会变化的、重要的参数和设置，比如数据库连接信息、API 密钥、环境配置（如开发、生产环境等）、日志设置等。将这些配置项集中在 config.py 文件中，可以使代码更加模块化，易于管理和修改。

config.py 文件可以用于存放一些数据库连接相关的配置，比如数据库的用户名、密码、主机名、端口号等。这样，你在使用库时，不需要在每次连接数据库时都重复编写这些信息，而是可以通过加载配置文件来自动获取。

"""

# # 也可以为不同的环境定义不同的配置
# class DevelopmentConfig(Config):
#     DEBUG = True  # 开发环境中开启调试模式
#
#
# class ProductionConfig(Config):
#     DEBUG = False  # 生产环境中关闭调试模式


import os

# 在我使用的v2版本中已经弃用
# from pydantic import BaseSettings
from pydantic_settings import BaseSettings
from typing import Optional
from hellchin.util.find import find_files, find_dotenv

class MysqlSettings(BaseSettings):
    # 自动从环境变量读取(不区分大小写)
    host: Optional[str] = None
    port: Optional[int] = None
    user: Optional[str] = None
    password: Optional[str] = None
    database: Optional[str] = None

    class Config:
        env_prefix = 'MYSQL_'  # 环境变量前缀(APP_DB_HOST)
        case_sensitive = False  # 不区分大小写
        # env_file = '.env.mysql'  # 从.env文件加载。会自动从所有路径去找, 默认值Path('')
        # env_file = find_dotenv(".env.mysql")  # 这里不指定了，用其他方式去激活环境。不再指定。
        env_file_encoding = 'utf-8'
        env_ignore_empty = None # 忽略空值
        env_nested_delimiter = None  # 嵌套分隔符，默认为None, 可以设置为例如'_'


# os.environ['MYSQ_HOST'] = '192.168.10.131'
# settings = MysqlSettings()


#
# print(settings.model_dump())


# 根据环境变量选择配置
# if os.getenv("ENVIRONMENT") == "production":
#     config = ProductionConfig()
# elif os.getenv("ENVIRONMENT") == "development": # environment
#     config = DevelopmentConfig()
# else:
#     config = None
# MysqlConfig = MysqlSettings()
# print(MysqlConfig.model_dump())
# print(find_files(".env.mysql"))
# 打印是否启用调试模式
# print(f"DEBUG mode is {config.DEBUG if config  else 'OFF'}")
